﻿<?xml version="1.0" encoding="utf-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
		xmlns:maml="http://ddue.schemas.microsoft.com/authoring/2003/5" 
		xmlns:doc="http://ddue.schemas.microsoft.com/authoring/internal"
		targetNamespace="http://ddue.schemas.microsoft.com/authoring/2003/5" 
		elementFormDefault="qualified"
        attributeFormDefault="unqualified"
        >

	<!-- Schema documentation -->
	<annotation>
		<documentation>
			This schema definition defines common hierarchy types for the CS Schema.
			This schema is part of the base layer.			
		</documentation>
	</annotation>
	
	<!-- include and import declarations -->
	<include schemaLocation="structure.xsd"/>

    	<complexType name="paraType">
		<sequence>
		    <element ref="maml:para"/>
		</sequence>
		<attributeGroup ref="maml:contentIdentificationSharingAndConditionGroup"/>
	</complexType>

	<complexType name="sectionType">
		<sequence>
		    <element ref="maml:title" minOccurs="0" maxOccurs="1"/>
		    <element ref="maml:content"/>
		    <element ref="maml:sections" minOccurs="0" maxOccurs="1"/>
		</sequence>
		<attributeGroup ref="maml:contentIdentificationSharingAndConditionGroup"/>
	</complexType>
	
	<complexType name="namedSectionType">
		<sequence>
		    <element ref="maml:content"/>
		    <element ref="maml:sections" minOccurs="0" maxOccurs="1"/>
		</sequence>
		<attributeGroup ref="maml:contentIdentificationSharingAndConditionGroup"/>
	</complexType>
    
    <element name="section" type="maml:sectionType">
		<annotation>
			<documentation>
				The section element describes a section within a document.
				The section element supports recursion.
			</documentation>
			<appinfo>
			    <doc:localizable>n/a</doc:localizable>
				<doc:type>section</doc:type>
			</appinfo>
		</annotation>
	</element>

	<element name="sectionSimple" type="maml:sectionContentType">
		<annotation>
			<documentation>
				The sectionSimple element describes a section within a document.
				This element is similar to the section element; however, it is not
				recursive.
			</documentation>
			<appinfo>
			    <doc:localizable>n/a</doc:localizable>
				<doc:type>section</doc:type>
			</appinfo>
		</annotation>
	</element>
	
	<complexType name="sectionsType" mixed="false">
	    <choice minOccurs="0" maxOccurs="unbounded">
            <element ref="maml:section"/>
            <element ref="maml:sectionSimple"/>
            <element name="conditionalSection">
                <complexType>
                    <sequence>
                        <element ref="maml:conditions"/>
                        <element name="conditionalContent" type="maml:sectionsType"/>
                    </sequence>
                </complexType>
            </element>
        </choice>
        <attributeGroup ref="maml:contentIdentificationSharingAndConditionGroup"/>
	</complexType>
	    
	<element name="sections" type="maml:sectionsType">
	    <annotation>
			<documentation>
				This element holds a collection of section elements.
			</documentation>
			<appinfo>
			    <doc:localizable>n/a</doc:localizable>
				<doc:type>section</doc:type>
			</appinfo>
		</annotation>
	</element>
	<element name="sampleRef">
		<annotation>
			<documentation>
				The sampleRef element contains a reference to an external code sample.
			</documentation>
		</annotation>
		<complexType>
			<attribute name="srcID" type="token"/>
			<attribute name="databaseID" type="token"/>
		</complexType>
	</element>
    <group name="relatedTopicLinkGroup">
        <choice>
		<element ref="maml:link"/>
		<element ref="maml:legacyLink"/>
		<element ref="maml:codeEntityReference"/>
		<element ref="maml:externalLink"/>
		<element ref="maml:sampleRef"/>
        </choice>
    </group>

    <complexType name="relatedTopicsType" mixed="false">
        <choice minOccurs="0" maxOccurs="unbounded">
            <group   ref="maml:relatedTopicLinkGroup"/>
        </choice>
        <attributeGroup ref="maml:contentIdentificationSharingAndConditionGroup"/>
    </complexType>
    
	<element name="relatedTopics" type="maml:relatedTopicsType">
		<annotation>
			<documentation>
				The relatedTopicsLink is used to link to other topics that might be interesting to the reader.
			</documentation>
			<appinfo>
			    <doc:localizable>n/a</doc:localizable>
				<doc:type>section</doc:type>
			</appinfo>
		</annotation>
	</element>
	<complexType name="externalResourcesType" mixed="false">
		<sequence>
			<element ref="maml:link"/>
		</sequence>
	</complexType>
	<element name="externalResources" type="maml:externalResourcesType">
		<annotation>
			<documentation>
				This element holds a collection of section elements.
			</documentation>
			<appinfo>
				<doc:localizable>n/a</doc:localizable>
				<doc:type>section</doc:type>
			</appinfo>
		</annotation>
	</element>
	<!-- complexType declarations -->
	<complexType name="contentTypeType">
		<complexContent>
			<extension base="maml:sectionType">
				<sequence>
					<!--<element ref="maml:alertSet" minOccurs="0"/>-->
		                    <element ref="maml:relatedTopics" minOccurs="0" maxOccurs="1"/>
				</sequence>
				<attribute name="contentType" type="token"/>
			</extension>
		</complexContent>
	</complexType>

</schema>